#ifndef __UART_4G_H
#define __UART_4G_H

#include <stdbool.h>
#include <stdint.h>
#include "ti_msp_dl_config.h" 

// 定义一个数据回调函数指针类型
// 当UART接收到一行完整数据时，会调用此类型的函数
typedef void (*UART_4G_DataCallback)(const char *data);

// GPS数据结构体 (保留，因为上层应用可能还需要它)
typedef struct {
    float longitude; // 经度
    float latitude;  // 纬度
} GPS_Data_t;

/**
 * @brief 初始化4G模块驱动
 * 
 */
void UART_4G_Init(void);

/**
 * @brief 注册一个回调函数，用于处理接收到的数据
 * @param callback 函数指针
 */
void UART_4G_SetDataCallback(UART_4G_DataCallback callback);

/**
 * @brief 通过4G模块发送字符串
 * @param str 要发送的字符串
 */
void UART_4G_SendString(const char *str);

/**
 * @brief UART接收处理函数, 在中断中调用
 */
void UART_4G_IRQHandler(void);

/**
 * @brief UART2中断服务程序 (4G/GPS模块)
 * @note 此函数已移至 empty.c 中实现，以避免重复定义链接错误。
 */
void UART_4G_IRQHandler(void);

#endif // __UART_4G_H 